All electrical circuits exhibit waveforms such as a voltage waveform at each node, a current waveform through each branch and a voltage waveform across each branch of the circuit. A waveform is just the variation of a quantity of interest, such as voltage or current, with time. Waveforms are also exhibited in the frequency-domain where the circuit is linearized about an operating point and the small-signal behavior of the circuit is studied across a range of frequencies.
In engineering applications, it is often desirable to achieve a particular waveform shape. For example, if a clock distribution circuit on an integrated circuit is being designed, it may be desirable to have the clock waveforms at various target latches switch at the same time and have as close a voltage waveform to an “ideal trapezoidal clock waveform” as possible at each of the latch destinations. Similarly, the gain or phase characteristics of a filter circuit may have a desired shape in the frequency domain. Similarly, it may be required to optimally power a communication circuit to obtain a desired signal-to-noise ratio. During the design, once the topology of a circuit has been established, component values and/or sizes are adjusted or tuned to obtain a match between a desired set of waveforms and the actual waveforms of the circuit as predicted by circuit simulation or analysis. During the adjusting process, there may be other constraints or objective functions (quantities being minimized or maximized) such as performance requirements on the circuit other than waveform shapes (such as power, delay, area rise/fall time or gain considerations), or lower and upper bounds on the parameters being adjusted. After the simulations show that the waveforms are “close enough” in their shape and all the other criteria are met, the circuit is committed to manufacturing.
Component values and/or sizes include resistance values, capacitance values, inductance values, lengths of transistors, widths of transistors, choice of bias currents, and so on. The process of “tuning,” “tweaking” or “adjusting” these design parameters for waveform shaping is typically an iterative, tedious and manual procedure. A set of choices of component values and/or sizes is called an iteration. Each iteration is followed by circuit simulation or analysis by means of a computer program to establish that the match between the actual waveforms and the desired waveforms improved and that the other optimization criteria improved. This iterative procedure is repeated until satisfactory results are obtained as predicted by the circuit simulation program. The updating of component values and/or sizes from iteration to iteration typically relies on human intuition and experience.
It is desirable to automate the procedure of tuning component values and/or sizes. It is further often desirable to tune the circuit to obtain the best possible match of an entire waveform or set of waveforms rather than some particular attributes of characteristics of the waveforms such as delay or rise/fall time. For example, for a signal that should be quiet but is exhibiting ringing, it may be desirable to tune the circuit to minimize the amount of ringing during the time when the line should otherwise be quiet. In modem digital integrated circuits, digital waveforms no longer look like classical square waves or trapezoidal waves. Due to effects such as capacitive coupling, inductive coupling, charge regeneration circuits and transmission line effects, the waveforms look like analog waveforms and their noise immunity may be compromised. With the advent of ultra-small electronic devices and nanotechnology, this trend will only get worse. Thus, it may be desirable to tune the various components of a circuit to shape an individual waveform, for example, to tune the clock distribution circuitry to obtain the “healthiest” possible digital waveform at the target latches. It may also be desirous to optimize some other performance of the circuit (such as delay or power) subject to a requirement on the “quality of match” between a desired set of waveforms and the corresponding actual waveforms. In all of these examples, it is desirous to obtain the best possible match on the entire waveform rather than matching particular attributes of the waveform, and it is desirous to employ automated means.